package br.gov.sjc.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import br.gov.sjc.classes.Telefone;

public class TelefoneDAO {
	private SQLiteDatabase database;
    private BaseDAO dbHelper;
    
  //Campos da tabela
	private static final String[] COLS = {"_id", "SiasN", "DDD", 
		"Telefone","TipoTelefone","TipoUtilizacao","Contato"};
	
	/**
	 * Constructor
	 */
	public TelefoneDAO(Context context) {
		dbHelper = new BaseDAO(context);
	}
	
    public void open() throws SQLException {
        database = dbHelper.getWritableDatabase();
    }
    
    public void close() {
        dbHelper.close();
    }
    
	public long inserir(Telefone telefone){
		ContentValues valores = new ContentValues();
		valores.put(BaseDAO.TELEFONE_SIASN, String.valueOf(telefone.getSiasN()));
		valores.put(BaseDAO.TELEFONE_DDD, String.valueOf(telefone.getDDD()));
		valores.put(BaseDAO.TELEFONE_TELEFONE, telefone.getTelefone());
		valores.put(BaseDAO.TELEFONE_TIPO, telefone.getTipoTelefone());
		valores.put(BaseDAO.TELEFONE_UTILIZACAO, telefone.getTipoUtilizacao());
		valores.put(BaseDAO.TELEFONE_CONTATO, telefone.getContato());
		
		return database.insert(BaseDAO.TBL_TELEFONE, null, valores);
	}
	
	public int alterar(Telefone telefone) {
		long id = telefone.get_id();
		ContentValues valores = new ContentValues();
		
		valores.put("SiasN", String.valueOf(telefone.getSiasN()));
		valores.put("DDD", String.valueOf(telefone.getDDD()));
		valores.put("Telefone", telefone.getTelefone());
		valores.put("TipoTelefone", telefone.getTipoTelefone());
		valores.put("TipoUtilizacao", telefone.getTipoUtilizacao());
		valores.put("Contato", telefone.getContato());
		
		return database.update(BaseDAO.TBL_TELEFONE, valores, BaseDAO.TELEFONE_ID + "="+ id, null);
	}
	
	   public void Excluir(Telefone pValue) {
	        long id = pValue.get_id();
	         
	        //Exclui o registro com base no ID
	        database.delete(BaseDAO.TBL_TELEFONE,BaseDAO.TELEFONE_ID+" = " + id, null);
	    }
	   
		public List<Telefone> Consultar(int SiasN){
			List<Telefone> lista = new ArrayList<Telefone>();
			
			//Consulta para trazer todos os dados de cada membro da tabela _____ ordenados pela coluna ______ 
	        Cursor cursor = database.query(BaseDAO.TBL_TELEFONE, COLS, 
	        		"SiasN=?", new String[]{""+SiasN}, null, null, BaseDAO.TELEFONE_SIASN);
	        cursor.moveToFirst();
			//Cursor c = getWritableDatabase().query(TABELA, COLS, "SiasN=? AND idMembro=?", new String[]{""+SiasN,""+idMembro}, null, null, null);
	        while (!cursor.isAfterLast()) {
	        	Telefone lTelefone = cursorToTelefone(cursor);
	        	lista.add(lTelefone);
	            cursor.moveToNext();
	        }

			cursor.close();
			return lista;
		}
		
		//Converter o Cursor de dados no objeto POJO ContatoVO
	    private Telefone cursorToTelefone(Cursor cursor) {
	    	Telefone lTelefone = new Telefone();
	    	lTelefone.set_id(cursor.getInt(0));
	    	lTelefone.setSiasN(cursor.getInt(1));
	    	lTelefone.setDDD(cursor.getString(2));
	    	lTelefone.setTelefone(cursor.getString(3));
	    	lTelefone.setTipoTelefone(cursor.getString(4));
	    	lTelefone.setTipoUtilizacao(cursor.getString(5));
	    	lTelefone.setContato(cursor.getString(6));
	    	
	        return lTelefone;
	    }

}
